/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.figmania.controlador;

import br.figmania.modelo.Evento;
import br.figmania.modelo.Usuario;
import br.figmania.repositorio.Dao;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.swing.JOptionPane;

/**
 *
 * @author Henrique
 */
public class EventoControlador {
    
    private Dao repositorio = new Dao();
    
    public void criarEvento(HttpServletRequest request, HttpServletResponse response) throws ParseException, IOException{
        
        HttpSession secao = request.getSession();
        String nomeEvento = request.getParameter("nome_evento");
        String data = request.getParameter("data");
        String hora = request.getParameter("Hora");
        String local = request.getParameter("local");
        String obs = request.getParameter("Observacoes");
        
        DateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
        DateFormat formatoHora = new SimpleDateFormat("HH:mm");
        
        Date horaEvento = formatoHora.parse(hora);
        Date dataEvento = formatoData.parse(data);
               
        
        Evento evento = new Evento();
        
        evento.setNome(nomeEvento);
        evento.setDataInicial(dataEvento);
        evento.setHoraInicial(horaEvento);
        evento.setLocal(local);
        evento.setUsuario((Usuario)secao.getAttribute("usuario"));
        if (!obs.equals("")){
            evento.setObs(obs);
        }
        
        boolean status = repositorio.inserirObjeto(evento);
        
        secao.setAttribute("validaEvento", status);
        
        response.sendRedirect("cadastro_evento.jsp");
        
    }
    
    public void carregarEventosUsuario(HttpServletRequest request){
        
        HttpSession secao = request.getSession();
        
        Usuario usuario = (Usuario) secao.getAttribute("usuario");
        
        List <Evento> meusEventos = (List<Evento>) repositorio.listarObjeto("FROM Evento WHERE id_usuario = '"+usuario.getId()+"'");
        
        if (meusEventos.isEmpty()){
        meusEventos = null;
        secao.setAttribute("meusEventos", meusEventos);
        } else{
        secao.setAttribute("meusEventos", meusEventos);
        }
        
    }
    
    public void excluirEvento(HttpServletRequest request, String id_evento){
        
       HttpSession secao = request.getSession();
       Evento evento = null;
       int contador = 0;
       List <Evento> listaEvento = (List<Evento>) secao.getAttribute("meusEventos");
       Usuario usuario = (Usuario) secao.getAttribute("usuario");
       
       while (contador < listaEvento.size()){
           
           if (listaEvento.get(contador).getId()==Integer.parseInt(id_evento)){
               
               evento = listaEvento.get(contador);
               break;
           }
       }
       
       boolean status = repositorio.deletarObjeto(evento);
       
       if (listaEvento.size()==1){
         List <Evento> eventosNulos = null;
         secao.setAttribute("meusEventos", eventosNulos );
       }else{
       listaEvento = (List<Evento>) repositorio.listarObjeto("FROM Evento WHERE id_usuario = '"+usuario.getId()+"'");       
       secao.setAttribute("meusEventos", listaEvento);
       } 
        
        
    }
    
}
